数组

  对于类型T,T[size]就是“具有size个T类型的元素的数组”类型。这些元素的下标从0到size-1。看下面例子:

    float v[3];        // 一个数组,包含3歌浮点数:v[0], v[1], v[2]
    char* a[32];       // 一个数组,包含32个到char的指针:a[0]..a[31]

数组元素的个数,即数组的界,必须是一个常量表达式(C.5节)。如果你需要变化的界,那么请用vector(3.7.1节、16.3节)。例如,

    void f(int i)
    {
        int v1[i];            // 错误❌:数组大小必须是常量表达式
        vector<int> v2(i);    // 可以
    }

多维数组被表示为数组的数组。例如,

int d2[10][20];        // d2是一个包含10个各包含20个整数的数组的数组

其他语言对数组的界采用逗号记法,用在这里将产生一个编译时错误。因为逗号(,)是序列运算符(6.2.2节),不允许出现在常量表达式里。例如,请试试这个:

int bad[5,2];        // 错误❌:逗号不允许出现在常量表达式里

多维数组在C.7节描述。在底层代码中之外最好避免使用它们。

🔚